package org.stream;

import org.entity.Employee;
import org.junit.jupiter.api.Test;

/**
 * @Description
 * @Author wjj
 * @Date 2023/4/17 20:52
 */
class Filter {
    /*过滤器操作产生一个过滤后的流，它是输入流的一个子集，对于指定的谓词，它的元素求值为true。
    谓词是接受元素并返回布尔值的函数。
    过滤后的流与输入流具有相同的类型。
    如果谓词对所有元素的计算结果都为false，则产生一个空流。*/
    @Test
    public void filterTest(){
        Employee.persons().stream()
                .filter(Employee::isFemale)
                .map(Employee::getName)
                .forEach(System.out::println);
        System.out.println("----------------------");

        Employee.persons().stream()
                .filter(Employee::isMale)
                .filter(p->p.getIncome() > 1000)
                .map(Employee::getName)
                .forEach(System.out::println);

        System.out.println("----------------------");
        Employee.persons().stream()
                .filter(p->p.getIncome()>1000 && p.isMale())
                .map(Employee::getName)
                .forEach(System.out::println);
    }

}
